Розріджені матриці

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування складних алгоритмів

Частина тексту файла

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ “КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО” ЗВІТ з лабораторної роботи №6 з навчальної дисципліни “Програмування складних алгоритмів” Тема: «Розріджені матриці» Варіант № 20 Дата «19» червня 2022 Завдання до лабораторної роботи: Розробити спосіб економного зберігання в пам’яті розріджених матриць. Виконати індивідуальне завдання над стисненою матрицею. Вивести матрицю до та після обробки у стисненому та розгорнутому вигляді. Завдання для варіанту 20: Провести обмін елементів матриці за вказаною схемою, любим обраним методом / Теоретична частина Розріджена матриця — матриця, більша частина елементів якої є нулі. Немає єдиного визначення, яка кількість ненульових елементів має бути в матриці, щоб вона була розрідженою. Для матриці порядку n елементів кількість ненульових елементів: є O(n). Таке визначення підходить хіба для теоретичного аналізу асимптотичних властивостей матричних алгоритмів. в кожному рядку не перевищує 10 в типовому випадку. обмежено nα+1, де α <1. Представлення у структурах даних Зберігати цілу матрицю у пам'яті комп'ютера є неефективно по відношенню до пам'яті, тому є альтернативні способи збереження таких матриць. Зберігання ненульових елементів Одним з таких способів полягає в зберіганні ненульових елементів та їх координат. Цей спосіб є економний для пам'яті але для виконання дій з матрицями (додавання, множення) він є неефективний, оскільки кожного разу потрібно перебирати всі елементи для пошуку відповідного елемента. Зберігання ненульових елементів зв'язаних вказівниками У цьому способі збереження кожен ненульовий елемент зберігається у вигляді значення, номера рядка та стовпця і вказівника на наступний елемент в рядку і стовпці. Для цього методу збереження потрібно також зберігати рамку, яка складається з таких самих елементів, до якої ми будемо прив'язувати всі елементи вказівниками. Цей спосіб потребує більше пам'яті, але при цьому збільшується швидкість виконання дій над матрицями. Результат роботи // // Висновок: У ході виконання даної лабораторної роботи було отримано практичні навички роботи з розрідженими матрицями, розроблено спосіб економного зберігання в пам’яті розріджених матриць, виконано завдання згідно варіанта над стисненою матрицею. Код програми: package com.company; import java.awt.*; import java.util.ArrayList; public class LR_6 { public static void main(String[] args) { System.out.println("ЛР №6. Варіант 20"); System.out.println("Завдання: Розробити спосіб економного зберігання в пам’яті розріджених матриць."); int size = 10; //Створюємо звичаний двовимірний масив, у якому більшість елементів генеруються нулями int[][] array = new int[size][size]; for (int i= 0; i< size;i++) for (int j = 0;j <size;j ++) array[i][j] = Math.random() < 0.35 ? (int)(Math.random() * 10) : 0; Matrix matrix = new Matrix(array); System.out.println("Початкова матриця у звичайному вигляді"); matrix.displayLikeArray(); System.out.println("Та ж початкова матриця у стисненому вигляді"); matrix.display(); System.out.println("Індивідуальне завдання над стисненою матрицею: "); System.out.println("Провести обмін елементів матриці за вказаною схемою (ДИВИТИСЯ СХЕМУ ВАРІАНТУ В ЗВІТІ)"); matrix.task1(); System.out.println("Результат у звичайному вигляді масиву:"); matrix.displayLikeArray(); System.out.println("Результат у вигляді стисненої матриці:"); matrix.display(); } } class Matrix { ArrayList<ElementInfo> elements; int height, width; Matrix(int[][] array) { elements = new ArrayList<>(); height = array.length; width = array[0].length; ...
Антиботан аватар за замовчуванням

22.05.2023 11:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини